<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Vue.set的使用</title>
     <!-- 引入vue -->
     <script type="text/javascript" src="../js/vue.js"></script>
</head>
<body>
    <div id="root">
        <h1>学校信息</h1>
        <h2>学校名称：{{name}}</h2>
        <h1>学校地址：{{address}}</h1>

        <hr/>
        <h1>学生信息</h1>
        <button @click="addSex">添加一个学生性别，默认值是男</button>
        <h2>学生姓名：{{student.name}}</h2>
        <!-- Vue.set(vm._data.student,'sex','男')这种方法可以构成响应式 -->
        <h2 v-if="student.sex">学生性别：{{student.sex}}</h2>
        <h2>学生年龄：真实{{student.age.rAge}},对外{{student.age.sAge}}</h2>
        <h2>朋友们</h2>
        <ul>
            <li v-for="(f,index) in student.friends" :key="index">
                {{f.name}}---{{f.age}}
            </li>
        </ul>
    </div>
</body>
<script type="text/javascript">
    Vue.config.productionTip = false //阻止vue在启动生成生产提示。

    const vm = new Vue({
        el:'#root',
        data:{
            name:'尚硅谷',
            address:'北京',
             student:{
                name:'tom',
                age:{
                    rAge:49,
                    sAge:29
                },
                friends:[
                {name:'ton',age:45},
                {name:'non',age:46}
             ]
             }
        },
        methods: {
            addSex(){
                //Vue.set只能给data里面的某一个对象追加属性，不能给data，vm追加属性。
                // Vue.set(this.student,'sex','男')
                this.$set(this.student,'sex','男')
            }
        },
    })
    </script>
</html>